import showDetail from "../../modules/showDetail"; // 导入展示详情的函数
const app = getApp(); // 获取全局应用实例

Page({
  /**
   * 页面的初始数据
   */
  data: {
    goods_list: [], // 商品列表数据
    search_list: [], // 搜索结果列表数据
    is_hidden: true // 是否隐藏搜索结果，默认隐藏
  },

  /**
   * 输入搜索关键字时触发的事件处理函数
   */
  searchInput(e) {
    // 存入搜索关键字到本地存储
    wx.setStorageSync('keywords', e.detail.value);
    // 获取搜索结果列表
    let search_list = this.getList(e.detail.value);
    // 如果输入为空字符串，则清空搜索结果列表，并隐藏搜索结果
    if (e.detail.value === "") {
      search_list = [];
      this.data.is_hidden = true;
    } else {
      this.data.is_hidden = false;
    }
    // 更新数据到视图
    this.setData({
      search_list,
      is_hidden: this.data.is_hidden
    });
  },

  /**
   * 点击搜索按钮时触发的事件处理函数
   */
  search(e) {
    // 获取存储的搜索关键字
    const keywords = wx.getStorageSync('keywords');
    // 显示加载提示
    wx.showLoading({
      title: '请稍等',
    });
    // 模拟异步请求数据，500毫秒后更新商品列表数据并隐藏搜索结果
    setTimeout(() => {
      this.setData({
        goods_list: this.getList(keywords),
        is_hidden: true
      });
      // 隐藏加载提示
      wx.hideLoading();
    }, 500);
  },

  /**
   * 点击商品条目展示详情的事件处理函数
   */
  showDetail,

  /**
   * 点击搜索结果列表项时触发的事件处理函数
   */
  showItemDetail(e) {
    // 获取点击项的商品标题并转换为小写
    const header = e.currentTarget.dataset.header.toLowerCase();
    console.log(header); // 输出调试信息到控制台
    // 显示加载提示
    wx.showLoading({
      title: '请稍等',
    });
    // 模拟异步请求数据，500毫秒后更新商品列表数据并隐藏搜索结果
    setTimeout(() => {
      // 更新商品列表数据并隐藏加载提示
      wx.hideLoading();
      this.setData({
        goods_list: this.getList(header),
        is_hidden: true
      });
    }, 500);
  },

  /**
   * 根据关键字获取匹配的商品列表
   * @param {String} attr 关键字
   * @returns {Array} 匹配的商品列表
   */
  getList(attr) {
    // 使用全局应用数据中的热卖商品列表进行匹配过滤
    return app.globalData.remai.goods_list.filter(item => {
      // 检查商品标题是否包含关键字（不区分大小写）
      return item.header.toString().toLowerCase().indexOf(attr) > -1;
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
});
